The present invention relates generally to communication systems and, more particularly to packet-based communication systems. In particular, the present invention relates to a packet-based wireless communication system that incorporates IP addressing.
Packet data networks consisting of a plurality of interconnected nodes are well known. A node in such a network may include any device supporting voice, data, and/or video communication. By way of example, and not by way of limitation, nodes may include computers, telephones, modems, fax machines, printers, personal digital assistants (PDA), cellular telephones, office and/or home appliances, and the like. In addition, packet data network nodes may include switches and/or routers that forward information to other nodes in the network. etc. or by wireless links. Examples of such packet data networks include the Internet, Ethernet networks, local area networks (LANs), personal area networks (PANs), wide area networks (WANs), and wired as well as wireless communication systems.
The nodes in a packet data network are typically assigned one or more addresses. These addresses are frequently used for delivering information between the various nodes within the packet data network. For example, when data is transported in a packet data network, the data may be divided into blocks or packets prior to transmission. A header containing the address of the destination node is attached to each packet. The routers or switches in the packet data network use the address to direct each packet to a destination or destinations for reassembly into an original message.
When data is sent to a plurality of destinations in a packet data network employing the Internet protocol or some other packet delivery protocol, routers in the packet network determine a path to each of the destination nodes. This set of destinations is frequently referred to as a group or multicast group. The set of paths to each of the nodes in the destination group are frequently referred to as multicast routing trees. The node from which the paths begin is the root of the tree. Generally, there are two different types of multicast routing trees: source-based trees and shared trees. With a source-based tree, a path between each node that may send data to a multicast group and each node in the multicast group is determined. If the multicast group has many members or there are many nodes that are sending data to the multicast group, a source based tree approach can be very complex and use a lot of network resources since a path must be constructed from each sender to each group member. With a shared tree, a path from a common node to each member of the multicast group is determined. When a node sends data to the multicast group, the packets are sent to the common node that then forwards them to all the members of the group.
Multicast routing protocols can be divided into dense mode protocols and sparse mode protocols. In sparse mode protocols a path is built from the root node (whether a source or a common node) to each of the member nodes of the multicast group. The set of these paths makes up the multicast routing tree. In dense mode protocols, the multicast routing tree is built using a two step process. First, the root node for the multicast group (whether a source node or common node) floods all possible paths with multicast messages. Then the routers receiving the multicast messages inform the other routers in the packet data network whether they are connected to any members of the multicast group. This information is used to stop the flow of future multicast messages to routers that are not in paths to member nodes of the multicast group.
One protocol that can be used for multicast routing is the sparse mode of protocol independent multicasting (PIM-SM). PIM-SM uses shared trees for routing packets to the multicast groups. When a multicast group is formed, one router, called the rendezvous point (RP), is designated. A routing path is built from the RP to every member node of the multicast tree. When data packets are sent to the nodes of the multicast group, the data packets are first sent to the RP. The RP then sends the data packets to each of the multicast group members. There is shown in FIG. 1 an example of a packet data network that uses PIM-SM for multicast routing. The packet data network comprises a plurality of nodes, 102-116 and 130-140, connected by a plurality of wireless links 150-176. Nodes 130-140 can be routers, switches, or similar devices that forward data packets to other nodes. In accordance with one embodiment of the present invention, router 134 is designated as a RP for a multicast group consisting of nodes 106, 108, and 112. The arrows on the links of FIG. 1 show the flow of a data packet from a source node 102 to the member nodes of the multicast group. The source node 102 sends the packet to the RP 134. The RP 134 then sends copies of the data packet to each member of the multicast group 106, 108, 112 following the paths shown.
One disadvantage of multicast protocols that use shared trees, such as, for example, PIM-SM, is the dependency on the RP. If the RP stops functioning, communication to the entire multicast group is lost. To reestablish the communication a new RP must be assigned and a path to all the member nodes built. This can take several seconds. For some types of data such as streaming audio and video or voice conversations, such delays are unacceptable. Hence there is a need for a method to improve the reliability of packet delivery in an unreliable environment, such as, for example, packet data networks in general, and the Internet in particular. This method should allow for the quick recovery of communication when a common node fails, or is otherwise unavailable.